﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ggprot
{
    public enum Status : int
    {
        NotAvail = 0x0001,
        NotAvailDesc = 0x0015,
        FreeForChat = 0x0017,
        FreeForChatDesc = 0x0018,
        Avail = 0x0002,
        AvailDesc = 0x0004,
        Busy = 0x0003,
        BusyDesc = 0x0005,
        DoNotDisturb = 0x0021,
        DoNotDisturbDesc = 0x0022,
        Invis = 0x0014,
        InvisDesc = 0x0016,
        Blocked = 0x0006,
        Friends = 0x8000
    }

    public enum DescriptionFlags : int
    {
        Audio = 0x00000001,
        VideoEnabled = 0x00000002,
        Mobile = 0x00100000,
        AcceptLinks = 0x00800000
    }

    public enum Packets : int
    {
        Login = 0x0031,
        NewStatus = 0x0038,
        SendMsg = 0x002d,
        ListEmpty = 0x0012,
        NotifyFirst = 0x000f,
        NotifyLast = 0x0010,
        RecvMsgAck = 0x0046,
        NotifyAdd = 0x000d,
        NotifyRemove = 0x000e,
        Ping = 0x0008,
        MultiloginDisconnect = 0x0062,

        TypeNotif = 0x0059,

        Welcome = 0x0001,
        LoginOk = 0x0035,
        LoginFailed = 0x0043,
        NotifyReply = 0x0037,
        XmlAction = 0x002c,
        UserData = 0x0044,
        MsgAck = 0x0005,
        Status = 0x0036,
        RecvMsg = 0x002e,
        Pong = 0x0007,
        OwnMsg = 0x005a,
        MultiLoginInfo = 0x005b,
        Disconnected = 0x000b,
        DisconnectedAck = 0x000d
    }

    public enum TypingNotify : int
    {
        Start = 0x1,
        Stop = 0x0
    }

    public enum MsgClass : int
    {
        Queued = 0x0001,
        Msg = 0x0004,
        Chat = 0x0008,
        Ctcp = 0x0010,
        Ack = 0x0020
    }

    public enum UsrTypes : byte
    {
        Offline = 0x01,
        Normal = 0x03,
        Blocked = 0x04
    }

    public enum MsgStatuses : int
    {
        Blocked = 0x0001,
        Delivered = 0x0002,
        Queued = 0x0003,
        MBoxFull = 0x0004,
        NotDelivered = 0x0006
    }

    public enum Features : int
    {
        NotifyType = 0x00000001,
        MsgType = 0x00000002,
        StatusType = 0x00000004,
        DndFfc = 0x00000010,
        GraphicStatuses = 0x00000020,
        LoginFailedType = 0x00000040,
        Unknown = 0x00000100,
        AddInfo = 0x00000200,
        SendMsgAck = 0x00000400,
        TypingNotif = 0x00002000,
        MultiLogin = 0x00004000
    }

    public enum MessageAttribs : int
    {
        Conference = 0x01,
        MsgRichtext = 0x02,
        ImageRequest = 0x04,
        ImageReplyFirst = 0x05,
        ImageReply = 0x06
    }
}
